//
//  GSSOthers.m
//  iGSS
//
//  Copyright 2010 Electronic Business Systems Ltd.
//
//  Licensed under the Apache License, Version 2.0 (the "License");
//  you may not use this file except in compliance with the License.
//  You may obtain a copy of the License at
//
//  http://www.apache.org/licenses/LICENSE-2.0
//
//  Unless required by applicable law or agreed to in writing, software
//  distributed under the License is distributed on an "AS IS" BASIS,
//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//  See the License for the specific language governing permissions and
//  limitations under the License.
//

#import "GSSOthers.h"

@implementation GSSOthers

- (id)initWithURI:(NSString *)aURI {
    return [super initWithURI:aURI withType:GSSObjectTypeOthers];
}

- (void)loadChildren {
    [self willChangeValueForKey:@"children"];

    [children removeAllObjects];
    for (NSDictionary *item in [meta objectForKey:@"users"]) {
        GSSObject *user = [[GSSObject alloc] initWithURI:[item objectForKey:@"uri"]
                                                withType:GSSObjectTypeUser];
        user.name = [item objectForKey:@"username"];
        [children addObject:user];
        [user release];
    }
    
    [self didChangeValueForKey:@"children"];
}

- (void)load {
    NSDictionary *storedMeta = [NSDictionary dictionaryWithContentsOfFile:self.metaCachePath];
    if (storedMeta) {
        [meta addEntriesFromDictionary:storedMeta];
        [self loadChildren];
    }
}

- (void)updateMeta:(NSDictionary *)newMeta {
    if (!newMeta)
        return;
    
    [self willChangeValueForKey:@"meta"];

    NSArray *users = (NSArray *)newMeta;
    
    [meta setObject:users forKey:@"users"];    
    [self loadChildren];
    
    [self didChangeValueForKey:@"meta"];
}

@end
